发现问题: Cronjob 以小时以上周期运行, 无法在指定时间触发
例如如下 Cronjob
1 | apiVersion: batch/v1beta1 |
具体执行内容无需在意, 我们看 schedule 配置为
*/1 * * * *
, 表示每分钟运行一次, 经部署可以正常运行0 */1 * * *
表示每小时的 0 分 运行一次, 经部署可以正常运行.0 12 * * *
表示每天的 12 点 0 分 运行一次, 经部署发现到时间并没触发. 同样的问题, 在指定任何特定的某小时某分钟
的时候无法执行.
排查问题
经过长时间的测试, 发现预定在 12 点 0 分运行的服务, 在晚上 8 点 0 分的时候执行了.
忽然恍然大悟, 应该是 k8s 的 cronjob 里面用的时区与外部 node 主机时区不一致
解决问题
在 container 配置中, 配置 TZ 环境变量
1 |
|